home *** CD-ROM | disk | FTP | other *** search
- package Local.Game.Level
- {
- import Local.*;
- import Local.Draw.*;
- import Local.Game.*;
- import Local.Game.HUD.*;
- import Local.Game.Thing.*;
- import Local.Game.World.*;
- import Local.Game.World.Map.*;
- import STC9.IO.*;
- import STC9.System.CProfiler;
- import flash.display.*;
- import flash.events.*;
- import flash.geom.*;
-
- public class CLevel extends EventDispatcher
- {
-
- internal static var mSpawnEnemyX:Number;
-
- public static const SECONDS:int = CThingBase.SECONDS;
-
-
- private var mStages:Array;
-
- private var mCounters:Object;
-
- private var mSpawnFriendX:Number;
-
- private var mStage:CLevelStage;
-
- private var mNextStageTick:int = 0;
-
- internal var mWorld:CWorld;
-
- public var mEnemyContainer:CThingContainer;
-
- private var mNextStageFT:Boolean;
-
- private var mStageIndex:int;
-
- private var mWindowLevelUp:CWindow_LevelUp;
-
- public var Process:Function;
-
- public var mFriendContainer:CThingContainer;
-
- public function CLevel(param1:CWorld)
- {
- if(true)
- {
- mNextStageTick = 0;
- if(true)
- {
- super();
- if(true)
- {
- mWorld = param1;
- if(true)
- {
- mEnemyContainer = new CThingContainer();
- if(true)
- {
- mEnemyContainer.mGroupID = CThingContainer.GROUPID_ENEMY;
- if(true)
- {
- mSpawnEnemyX = mWorld.mLandscape.mWidth;
- }
- mFriendContainer = new CThingContainer();
- }
- mFriendContainer.mGroupID = CThingContainer.GROUPID_FRIEND;
- }
- mSpawnFriendX = 0;
- }
- mStages = CLevelData.GetStages(this);
- }
- mStageIndex = CLevelData.mStartLevel - 1;
- }
- }
-
- public function Dispose() : void
- {
- }
-
- internal function e_STAGE_COMPLETE(param1:Event = null) : void
- {
- var _loc2_:CLevelStage = null;
- _loc2_ = CLevelStage(param1.currentTarget);
- if(true)
- {
- mNextStageTick = _loc2_.mNextStageTicks;
- mNextStageFT = true;
- }
- }
-
- public function SPAWN_chinooktank(param1:Number = 0) : *
- {
- return AddFriend(new CAircraftChinook(GetSpawnAir(mSpawnFriendX - 100,200),"tank"),param1);
- }
-
- public function AddFriend(param1:*, param2:Number = 0, param3:Boolean = true) : *
- {
- param1.mSelectable = param3;
- mFriendContainer.AddThing(param1);
- param1.addEventListener(CThingMain.REACHEDOBJECTIVE,e_FRIEND_REACHEDOBJECTIVE);
- }
-
- public function SPAWN_tankm1a1(param1:Number = 0) : *
- {
- return AddFriend(new CVehicleTankM1A1(GetSpawnGround(mSpawnFriendX - 100)),param1);
- }
-
- public function NextStage() : void
- {
- if(true)
- {
- mStage = mStages[++mStageIndex];
- if(true)
- {
- mHUD.SetStageInfo(mStageIndex);
- }
- CThingBase.mEnemySpeed = mStage.mEnemySpeed;
- }
- }
-
- public function get mMap() : CMap
- {
- return mWorld.mMap;
- }
-
- public function SPAWN_apache(param1:Number = 0) : *
- {
- §§push(§§findproperty(AddFriend));
- §§push(§§findproperty(CAircraftApache));
- §§push(§§findproperty(GetSpawnAir));
- §§push(mSpawnFriendX);
- if(true)
- {
- §§push(§§pop() - 100);
- }
- return §§pop().AddFriend(new §§pop().CAircraftApache(§§pop().GetSpawnAir(§§pop(),200)),param1);
- }
-
- public function GetSpawnAir(param1:Number, param2:Number) : CPosition
- {
- return new CPosition(param1,mWorld.mLandscape.GetAltitude(param1) - param2);
- }
-
- public function get mMouse() : CMouse
- {
- return mWorld.mMouse;
- }
-
- public function Start() : void
- {
- Process = Process_Normal;
- }
-
- public function get mLandscape() : CLandscape
- {
- return mWorld.mLandscape;
- }
-
- public function GetSpawnGround(param1:Number) : CPosition
- {
- return new CPosition(param1,mWorld.mLandscape.GetAltitude(param1));
- }
-
- public function e_FRIEND_REACHEDOBJECTIVE(param1:Event = null) : void
- {
- var _loc2_:CThingMain = null;
- _loc2_ = CThingMain(param1.currentTarget);
- §§push(mWorld.mGame.mHUD);
- §§push(mWorld.mGame.mHUD.mFunds);
- if(true)
- {
- §§push(§§pop() + _loc2_.mSmallPrize);
- }
- §§pop().mFunds = §§pop();
- _loc2_.removeEventListener(CThingMain.REACHEDOBJECTIVE,e_FRIEND_REACHEDOBJECTIVE);
- }
-
- public function SPAWN_chinooktroop(param1:Number = 0) : *
- {
- §§push(§§findproperty(AddFriend));
- §§push(§§findproperty(CAircraftChinook));
- §§push(§§findproperty(GetSpawnAir));
- §§push(mSpawnFriendX);
- if(true)
- {
- §§push(100);
- if(true)
- {
- addr26:
- §§push(§§pop() - §§pop());
- §§push(200);
- }
- return §§pop().AddFriend(new §§pop().CAircraftChinook(§§pop().GetSpawnAir(§§pop(),§§pop()),"troop"),param1);
- }
- §§goto(addr26);
- }
-
- public function get mHUD() : CHUD
- {
- return mGame.mHUD;
- }
-
- public function KillAllEnemies() : void
- {
- var _loc1_:CThingMain = null;
- for each(_loc1_ in mEnemyContainer.mChildren)
- {
- _loc1_.mDead = true;
- }
- }
-
- private function e_LEVELUP_DISPOSE(param1:Event = null) : void
- {
- mWindowLevelUp = null;
- if(mStageIndex == mStages.length - 1)
- {
- mGame.dispatchEvent(new Event(CGame.GAME_COMPLETE));
- return;
- }
- }
-
- public function SPAWN_m16(param1:Number = 0) : *
- {
- return AddFriend(new CPeepM16(GetSpawnGround(mSpawnFriendX - 10)),param1);
- }
-
- public function Process_Normal() : void
- {
- var _loc1_:CThingMain = null;
- var _loc2_:Number = NaN;
- §§push(mWindowLevelUp);
- if(true)
- {
- if(§§pop())
- {
- §§push(mWindowLevelUp);
- if(true)
- {
- §§push(§§pop().mCount);
- if(true)
- {
- if(§§pop() == SECONDS * 7)
- {
- addr29:
- mWindowLevelUp.Close();
- }
- addr31:
- mWindowLevelUp.Update();
- addr32:
- CThingMain.mFurthestMostEnemy = null;
- _loc2_ = mLandscape.mWidth;
- §§push(0);
- }
- var _loc3_:* = §§pop();
- var _loc4_:* = mEnemyContainer.mChildren;
- loop0:
- while(true)
- {
- §§push(§§hasnext(_loc4_,_loc3_));
- if(true)
- {
- if(§§pop())
- {
- _loc1_ = §§nextvalue(_loc3_,_loc4_);
- if(true)
- {
- if(_loc1_.mPosition.x < _loc2_)
- {
- if(true)
- {
- CThingMain.mFurthestMostEnemy = _loc1_;
- }
- _loc2_ = _loc1_.mPosition.x;
- }
- }
- continue;
- }
- if(true)
- {
- if(true)
- {
- mFriendContainer.Process_Children();
- if(true)
- {
- CThingMain.mFurthestMostFriend = null;
- if(true)
- {
- _loc2_ = 0;
- if(true)
- {
- _loc3_ = 0;
- _loc4_ = mFriendContainer.mChildren;
- while(true)
- {
- §§push(§§hasnext(_loc4_,_loc3_));
- break loop0;
- }
- addr132:
- if(true)
- {
- mEnemyContainer.Process_Children();
- if(true)
- {
- CProfiler.AddDebug("TCount.FFFriend",String(CThingMain.mFurthestMostFriend));
- if(true)
- {
- CProfiler.AddDebug("TCount.FFEnemys",String(CThingMain.mFurthestMostEnemy));
- if(true)
- {
- CProfiler.AddDebug("TCount.Friends",String(mFriendContainer.mNumChildren));
- if(true)
- {
- CProfiler.AddDebug("TCount.Enemies",String(mEnemyContainer.mNumChildren));
- if(true)
- {
- if(!mNextStageTick)
- {
- mStage.Process();
- }
- §§goto(addr236);
- }
- if(mEnemyContainer.mNumChildren == 0)
- {
- }
- §§goto(addr233);
- }
- if(mNextStageFT)
- {
- }
- §§goto(addr200);
- }
- mGame.addChild(mWindowLevelUp = new CWindow_LevelUp("LAH"));
- }
- mWindowLevelUp.addEventListener(CWindow.DISPOSING,e_LEVELUP_DISPOSE);
- }
- §§goto(addr200);
- }
- addr200:
- mHUD.SetStageInfo(mStageIndex,0,mNextStageTick);
- §§push((_loc3_ = §§findproperty(mNextStageTick)).mNextStageTick);
- if(true)
- {
- _loc3_.mNextStageTick = _loc4_;
- §§push(_loc4_ = §§pop() - 1);
- }
- if(§§pop() == 0)
- {
- addr221:
- NextStage();
- mNextStageFT = false;
- §§goto(addr223);
- }
- addr223:
- addr233:
- addr236:
- return;
- addr130:
- }
- }
- §§goto(addr221);
- }
- §§goto(addr233);
- }
- §§goto(addr236);
- }
- §§goto(addr132);
- }
- break;
- }
- while(true)
- {
- if(§§pop())
- {
- _loc1_ = §§nextvalue(_loc3_,_loc4_);
- if(true)
- {
- if(_loc1_.mPosition.x > _loc2_)
- {
- if(true)
- {
- CThingMain.mFurthestMostFriend = _loc1_;
- }
- _loc2_ = _loc1_.mPosition.x;
- }
- }
- continue;
- }
- §§goto(addr132);
- }
- }
- §§goto(addr29);
- }
- §§goto(addr32);
- }
- §§goto(addr31);
- }
-
- public function get mGame() : CGame
- {
- return mWorld.mGame;
- }
- }
- }
-